package com.dragon.modules.yuegou.service.impl.busd;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dragon.modules.yuegou.entity.busd.PageNewConfigEntity;
import com.dragon.modules.yuegou.enums.busd.PageNewConfigPageType;
import com.dragon.modules.yuegou.enums.busd.PageNewConfigYsqAppType;
import com.dragon.modules.yuegou.mapper.busd.PageNewConfigMapper;
import com.dragon.modules.yuegou.model.busd.PageNewConfig;
import com.dragon.modules.yuegou.query.busd.PageNewConfigQuery;
import com.dragon.modules.yuegou.service.busd.PageNewConfigService;
import com.dragon.modules.yuegou.web.Check;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;

import java.util.List;

/**
 * 小程序配置管理表 服务实现
 *
 * @author pbuilder generated
 * @date 2023-09-07 11:05:50
 * @version 2.0
 */
@Service("busdPageNewConfigService")
public class PageNewConfigServiceImpl
		extends ServiceImpl<PageNewConfigMapper, PageNewConfigEntity>
		implements PageNewConfigService {

	@Override
	public void updateConfig(PageNewConfig config) {
		Check.notNull(config.getId(), "配置ID不能为空");
		Check.notNull(config.getStyleContent(), "样式类容不能为空");
		PageNewConfigEntity entity = getById(config.getId());
		entity.setStyleContent(config.getStyleContent());
		entity.setModifiedBy(config.getModifiedBy());
		entity.setModifiedTime(config.getModifiedTime());
		baseMapper.updateById(entity);
	}

	@Override
	public PageNewConfig getConifgByBusdIdAndType(String busdId, String activityId, PageNewConfigPageType type, PageNewConfigYsqAppType ysqAppType) {
		PageNewConfigQuery query = new PageNewConfigQuery();
		query.setBusdId(busdId);
		query.setPageType(type);
		if (StringUtils.isNotEmpty(activityId)){
			query.id().eq(activityId);
		}
		query.setYsqAppType(ysqAppType);
		List<PageNewConfigEntity> configList = baseMapper.selectList(query.toQueryWrapper());
		if (CollectionUtils.isEmpty(configList)){
			return new PageNewConfig();
		}
		PageNewConfigEntity config = configList.get(configList.size()-1);
		return new PageNewConfig(config);
	}
}